package com.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.common.R;
import com.demo.dao.DishDao;
import com.demo.domain.Category;
import com.demo.domain.Dish;
import com.demo.dto.DishDto;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface DishService extends IService<Dish> {

    /**
     * 分页查询菜品信息
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    R<Page> page(int page, int pageSize,String name);

    /**
     * 代码优化
     * 多表条件分页查询
     * @param dishDtoPage
     * @param dishDto
     */
    void pageByParams(Page<DishDto> dishDtoPage, DishDto dishDto);



    /**
     * 添加菜品信息
     * @param dishDto
     * @return
     */
    R<DishDto> dishsave(@RequestBody DishDto dishDto);



    /**
     * 单删除和批量删除
     * @param ids
     * @return
     */
    R<String> deleteById(Long[] ids);


    /**
     * 修改菜品起售与停售状态
     * @param status
     * @param ids
     * @return
     */
    R<String> updateStatus(@PathVariable int status,Long[] ids);


    /**
     * 根据id回显菜品基本信息和口味信息
     * @param id
     * @return
     */
    R<DishDto> getDishWithFlavor(Long id);


    /**
     * 回显数据  代码优化
     * 一对多查询菜品口味信息
     * @param id
     * @return
     */
    DishDto queryById(Long id);


    /**
     * 修改菜品信息以及口味
     * @param dishDto
     * @return
     */
    R<String> updateDishWithFlavor(@RequestBody DishDto dishDto);

    /**
     * 根据菜品类型id获取到对应的所有菜品
     * @param dish
     * @return
     */
    R<List<DishDto>> queryDishList(Dish dish);


    /**
     * 根据菜品类型id获取到对应的所有菜品
     * 代码优化
     * @param dish
     * @return
     */
    List<DishDto> DishList (Dish dish);

}
